package com.eshop.modules.order.vo;

import com.eshop.serializer.BigDecimalSerializer;
import com.fasterxml.jackson.databind.annotation.JsonSerialize;
import java.math.BigDecimal;
import java.io.Serializable;

public class ComputeVo implements Serializable
{
    @JsonSerialize(using = BigDecimalSerializer.class)
    private BigDecimal couponPrice;
    @JsonSerialize(using = BigDecimalSerializer.class)
    private BigDecimal deductionPrice;
    @JsonSerialize(using = BigDecimalSerializer.class)
    private BigDecimal payPostage;
    @JsonSerialize(using = BigDecimalSerializer.class)
    private BigDecimal payPrice;
    @JsonSerialize(using = BigDecimalSerializer.class)
    private BigDecimal totalPrice;
    private Double usedIntegral;
    @JsonSerialize(using = BigDecimalSerializer.class)
    private BigDecimal payIntegral;
    
    public static ComputeVoBuilder builder() {
        return new ComputeVoBuilder();
    }
    
    public BigDecimal getCouponPrice() {
        return this.couponPrice;
    }
    
    public BigDecimal getDeductionPrice() {
        return this.deductionPrice;
    }
    
    public BigDecimal getPayPostage() {
        return this.payPostage;
    }
    
    public BigDecimal getPayPrice() {
        return this.payPrice;
    }
    
    public BigDecimal getTotalPrice() {
        return this.totalPrice;
    }
    
    public Double getUsedIntegral() {
        return this.usedIntegral;
    }
    
    public BigDecimal getPayIntegral() {
        return this.payIntegral;
    }
    
    public void setCouponPrice(final BigDecimal couponPrice) {
        this.couponPrice = couponPrice;
    }
    
    public void setDeductionPrice(final BigDecimal deductionPrice) {
        this.deductionPrice = deductionPrice;
    }
    
    public void setPayPostage(final BigDecimal payPostage) {
        this.payPostage = payPostage;
    }
    
    public void setPayPrice(final BigDecimal payPrice) {
        this.payPrice = payPrice;
    }
    
    public void setTotalPrice(final BigDecimal totalPrice) {
        this.totalPrice = totalPrice;
    }
    
    public void setUsedIntegral(final Double usedIntegral) {
        this.usedIntegral = usedIntegral;
    }
    
    public void setPayIntegral(final BigDecimal payIntegral) {
        this.payIntegral = payIntegral;
    }
    
    @Override
    public boolean equals(final Object o) {
        if (o == this) {
            return true;
        }
        if (!(o instanceof ComputeVo)) {
            return false;
        }
        final ComputeVo other = (ComputeVo)o;
        if (!other.canEqual(this)) {
            return false;
        }
        final Object this$usedIntegral = this.getUsedIntegral();
        final Object other$usedIntegral = other.getUsedIntegral();
        Label_0065: {
            if (this$usedIntegral == null) {
                if (other$usedIntegral == null) {
                    break Label_0065;
                }
            }
            else if (this$usedIntegral.equals(other$usedIntegral)) {
                break Label_0065;
            }
            return false;
        }
        final Object this$couponPrice = this.getCouponPrice();
        final Object other$couponPrice = other.getCouponPrice();
        Label_0102: {
            if (this$couponPrice == null) {
                if (other$couponPrice == null) {
                    break Label_0102;
                }
            }
            else if (this$couponPrice.equals(other$couponPrice)) {
                break Label_0102;
            }
            return false;
        }
        final Object this$deductionPrice = this.getDeductionPrice();
        final Object other$deductionPrice = other.getDeductionPrice();
        Label_0139: {
            if (this$deductionPrice == null) {
                if (other$deductionPrice == null) {
                    break Label_0139;
                }
            }
            else if (this$deductionPrice.equals(other$deductionPrice)) {
                break Label_0139;
            }
            return false;
        }
        final Object this$payPostage = this.getPayPostage();
        final Object other$payPostage = other.getPayPostage();
        Label_0176: {
            if (this$payPostage == null) {
                if (other$payPostage == null) {
                    break Label_0176;
                }
            }
            else if (this$payPostage.equals(other$payPostage)) {
                break Label_0176;
            }
            return false;
        }
        final Object this$payPrice = this.getPayPrice();
        final Object other$payPrice = other.getPayPrice();
        Label_0213: {
            if (this$payPrice == null) {
                if (other$payPrice == null) {
                    break Label_0213;
                }
            }
            else if (this$payPrice.equals(other$payPrice)) {
                break Label_0213;
            }
            return false;
        }
        final Object this$totalPrice = this.getTotalPrice();
        final Object other$totalPrice = other.getTotalPrice();
        Label_0250: {
            if (this$totalPrice == null) {
                if (other$totalPrice == null) {
                    break Label_0250;
                }
            }
            else if (this$totalPrice.equals(other$totalPrice)) {
                break Label_0250;
            }
            return false;
        }
        final Object this$payIntegral = this.getPayIntegral();
        final Object other$payIntegral = other.getPayIntegral();
        if (this$payIntegral == null) {
            if (other$payIntegral == null) {
                return true;
            }
        }
        else if (this$payIntegral.equals(other$payIntegral)) {
            return true;
        }
        return false;
    }
    
    protected boolean canEqual(final Object other) {
        return other instanceof ComputeVo;
    }
    
    @Override
    public int hashCode() {
        final int PRIME = 59;
        int result = 1;
        final Object $usedIntegral = this.getUsedIntegral();
        result = result * 59 + (($usedIntegral == null) ? 43 : $usedIntegral.hashCode());
        final Object $couponPrice = this.getCouponPrice();
        result = result * 59 + (($couponPrice == null) ? 43 : $couponPrice.hashCode());
        final Object $deductionPrice = this.getDeductionPrice();
        result = result * 59 + (($deductionPrice == null) ? 43 : $deductionPrice.hashCode());
        final Object $payPostage = this.getPayPostage();
        result = result * 59 + (($payPostage == null) ? 43 : $payPostage.hashCode());
        final Object $payPrice = this.getPayPrice();
        result = result * 59 + (($payPrice == null) ? 43 : $payPrice.hashCode());
        final Object $totalPrice = this.getTotalPrice();
        result = result * 59 + (($totalPrice == null) ? 43 : $totalPrice.hashCode());
        final Object $payIntegral = this.getPayIntegral();
        result = result * 59 + (($payIntegral == null) ? 43 : $payIntegral.hashCode());
        return result;
    }
    
    @Override
    public String toString() {
        return "ComputeVo(couponPrice=" + this.getCouponPrice() + ", deductionPrice=" + this.getDeductionPrice() + ", payPostage=" + this.getPayPostage() + ", payPrice=" + this.getPayPrice() + ", totalPrice=" + this.getTotalPrice() + ", usedIntegral=" + this.getUsedIntegral() + ", payIntegral=" + this.getPayIntegral() + ")";
    }
    
    public ComputeVo() {
    }
    
    public ComputeVo(final BigDecimal couponPrice, final BigDecimal deductionPrice, final BigDecimal payPostage, final BigDecimal payPrice, final BigDecimal totalPrice, final Double usedIntegral, final BigDecimal payIntegral) {
        this.couponPrice = couponPrice;
        this.deductionPrice = deductionPrice;
        this.payPostage = payPostage;
        this.payPrice = payPrice;
        this.totalPrice = totalPrice;
        this.usedIntegral = usedIntegral;
        this.payIntegral = payIntegral;
    }
    
    public static class ComputeVoBuilder
    {
        private BigDecimal couponPrice;
        private BigDecimal deductionPrice;
        private BigDecimal payPostage;
        private BigDecimal payPrice;
        private BigDecimal totalPrice;
        private Double usedIntegral;
        private BigDecimal payIntegral;
        
        ComputeVoBuilder() {
        }
        
        public ComputeVoBuilder couponPrice(final BigDecimal couponPrice) {
            this.couponPrice = couponPrice;
            return this;
        }
        
        public ComputeVoBuilder deductionPrice(final BigDecimal deductionPrice) {
            this.deductionPrice = deductionPrice;
            return this;
        }
        
        public ComputeVoBuilder payPostage(final BigDecimal payPostage) {
            this.payPostage = payPostage;
            return this;
        }
        
        public ComputeVoBuilder payPrice(final BigDecimal payPrice) {
            this.payPrice = payPrice;
            return this;
        }
        
        public ComputeVoBuilder totalPrice(final BigDecimal totalPrice) {
            this.totalPrice = totalPrice;
            return this;
        }
        
        public ComputeVoBuilder usedIntegral(final Double usedIntegral) {
            this.usedIntegral = usedIntegral;
            return this;
        }
        
        public ComputeVoBuilder payIntegral(final BigDecimal payIntegral) {
            this.payIntegral = payIntegral;
            return this;
        }
        
        public ComputeVo build() {
            return new ComputeVo(this.couponPrice, this.deductionPrice, this.payPostage, this.payPrice, this.totalPrice, this.usedIntegral, this.payIntegral);
        }
        
        @Override
        public String toString() {
            return "ComputeVo.ComputeVoBuilder(couponPrice=" + this.couponPrice + ", deductionPrice=" + this.deductionPrice + ", payPostage=" + this.payPostage + ", payPrice=" + this.payPrice + ", totalPrice=" + this.totalPrice + ", usedIntegral=" + this.usedIntegral + ", payIntegral=" + this.payIntegral + ")";
        }
    }
}
